package com.example.service.impl;

import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.common.ResultCode;
import com.example.dao.*;
import com.example.entity.Xuekejingsai;
import com.example.exception.CustomException;
import com.example.service.XuekejingsaiService;
import com.example.vo.XuekejingsaiVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Map;

@Service("xuekejingsaiService")
public class XuekejingsaiServiceImpl extends ServiceImpl<XuekejingsaiDao, Xuekejingsai> implements XuekejingsaiService {

    @Resource
    private XuekejingsaiDao xuekejingsaiDao;

    public Xuekejingsai add(Xuekejingsai xuekejingsai) {
		
	   //youquchong1
        xuekejingsai.setAddtime(new Date());
        xuekejingsaiDao.insert(xuekejingsai);
        return xuekejingsai;
    }
	
	
	
    public void delete(Long id) {
        xuekejingsaiDao.deleteById(id);
    }
	

    public void update(Xuekejingsai xuekejingsai) {
        //youquchong2
        xuekejingsaiDao.updateById(xuekejingsai);
    }
	
	@Override
    public List<Map<String, Object>> daochuexcel() {
        return xuekejingsaiDao.daochuexcel();
    }

    @Override
    public Xuekejingsai findById(Integer id) {
        return xuekejingsaiDao.selectById(id);
    }

    public XuekejingsaiVo findPage(XuekejingsaiVo xuekejingsaiVo) {
        LambdaQueryWrapper<Xuekejingsai> wrapper = Wrappers.lambdaQuery();
		wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getJingsaibianhao()), Xuekejingsai::getJingsaibianhao,xuekejingsaiVo.getJingsaibianhao());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getJingsaimingcheng()), Xuekejingsai::getJingsaimingcheng,xuekejingsaiVo.getJingsaimingcheng());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getJibie()), Xuekejingsai::getJibie,xuekejingsaiVo.getJibie());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getSuanfaleijingsai()), Xuekejingsai::getSuanfaleijingsai,xuekejingsaiVo.getSuanfaleijingsai());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getSuanfajingsaineirong()), Xuekejingsai::getSuanfajingsaineirong,xuekejingsaiVo.getSuanfajingsaineirong());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getZuopinleijingsai()), Xuekejingsai::getZuopinleijingsai,xuekejingsaiVo.getZuopinleijingsai());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getZuopinjingsaineirong()), Xuekejingsai::getZuopinjingsaineirong,xuekejingsaiVo.getZuopinjingsaineirong());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getJingsaijiezhiriqi()), Xuekejingsai::getJingsaijiezhiriqi,xuekejingsaiVo.getJingsaijiezhiriqi());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getZhaopian()), Xuekejingsai::getZhaopian,xuekejingsaiVo.getZhaopian());        wrapper.like(ObjectUtils.isNotEmpty(xuekejingsaiVo.getBeizhu()), Xuekejingsai::getBeizhu,xuekejingsaiVo.getBeizhu());        
        Page<Xuekejingsai> page = new Page<>(xuekejingsaiVo.getCurrent(),xuekejingsaiVo.getCurrentNum());
        xuekejingsaiDao.selectPage(page,wrapper);
        List<Xuekejingsai> xuekejingsais = page.getRecords();
        xuekejingsaiVo.setList(xuekejingsais);
        xuekejingsaiVo.setPages(page.getPages());
        xuekejingsaiVo.setTotal(page.getTotal());
        xuekejingsaiVo.setCurrent(page.getCurrent());
        xuekejingsaiVo.setCurrentNum(page.getSize());
        return xuekejingsaiVo;
    }

    @Override
    public void deleteList(List<Xuekejingsai> list) {
        List<Integer> ids =  list.stream().map(Xuekejingsai::getId).collect(Collectors.toList());
        xuekejingsaiDao.deleteBatchIds(ids);
    }
	
	
	
	
	
	//youxxianxci
}
